vb疑问。s="1+2" val(s) 为什么返回的值是1

来源:百度知道 编辑:UC知道 时间:2024/06/18 03:39:39

Val()函数的功能是把括号内的字符串转化为数值,它的实现原理是这样的
从字符串中第一个字符开始检索,如果字符属于“0”到“9”之间的字符,那么就把它转换为数字,一旦遇到不属于“0”到“9”之间的字符的时候转换就停止
。如你题目val()函数吧“1”转换为1后检索到字符“+”就停止转换。所以结果变成了1。同样如果val(“12+3”)的结果可想而知是12。
那么猜一下,val(“+123”)的结果是多少?
0?那就错了,结果是123.这是为什么呢。val()还有一个功能大家可能没注意过,就是可以获取字符串值中读取出的数字的符号。所以在我刚才的那个问题中val把“+”作为符号,收入数值的整体中,而之后的字符串就按照我之前说的那样依旧检索和转换。不信的话大家可以去验证一下。
下面再举一个例子,val(“+123+25”)和val(“-123”)这两个式子的知识多少呢?思考一下,答案会是123和-123。
那么懂了吗?

返回包含于字符串内的数字,字符串中是一个适当类型的数值。

语法

Val(string)

必要的 string 参数可以是任何有效的字符串表达式.

说明

Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都从参数中被去掉。

所以只能识别到1

Val函数只能识别有效数字,不会自动做运算,当然不知道算出1+2等于多少了,它只识别到有效数字1,"+"及以后的字符被忽略了

因为他识别不了+号

闪过吧...